class Collision{
public:
	static bool SphereIntersectLineSegment(Vector &Center, float Radius, Vector &Velocity, Vector &v1, Vector &v2, float &tMax, Vector &CollisionNormal);
	static bool SphereIntersectTriangle(Vector &Center, float Radius, Vector &Velocity, Triangle &CollTriangle, float &tMax, Vector &CollisionNormal);
	static bool SphereIntersectPlane(Vector &planeNormal,Vector &v1,Vector &Center,Vector &Velocity,float Radius,float &tMax);
	static bool RayIntersectPlane(Triangle &testTriangle,Vector *Origin,Vector *Direction,float *t, Vector &IntersectionPoint);
	static bool PointInTriangle(Vector point, Triangle &triangle);
	static bool CollideEllipsoid(Vector &Center,Vector &Velocity);
	static bool EllipsoidIntersectScene(Vector &Center,Vector &Velocity);
	static bool SolveCollision(float a, float b, float c, float &t);
	Collision();
	~Collision();
};